import sun.awt.windows.WPrinterJob;

import java.util.Scanner;
public class test_23_3_10 {
//    public static void func(int n) {
//        for (int i = 1; i <= n; i++) {
//            for (int j = 1; j <= i; j++) {
//                System.out.print(j + "*" + i + "=" + i * j + " ");
//            }
//            System.out.println();
//        }
//    }

//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        func(n);
//    }
//    public static void main(String[] args) {
//            String password="123456";
//            Scanner sc = new Scanner(System.in);
//
//           //boolean ok=false;
//            for(int i=1;i<=3;i++)
//            {
//                String cur=sc.next();
//                if(password.equalsIgnoreCase(cur))
//                {
//                    System.out.println("密码正确");
//                    //ok=true;
//                    break;
//                }
//                else
//                {
//                    System.out.println("密码错误你还有"+(3-i)+"次机会");
//                }
//            }
//    }

//    public static void main(String[] args) {
//        int n=49;
//        String odd="";
//        String even="";
//        int pos=1;
//        while(n!=0)
//        {
//            int t=n%2;
//            char ch=(t==1?'1':'0');
//            if((pos&1)==0) even+=ch;//偶数位
//            else odd+=ch;
//            pos++;
//            n/=2;
//        }
//
//        System.out.print("偶数位二进制: ");
//        for(int i=even.length()-1;i>=0;i--)
//        {
//            System.out.print(even.charAt(i)+" ");
//        }
//        System.out.print('\n');
//
//        System.out.print("奇数位二进制: ");
//        for(int i=odd.length()-1;i>=0;i--)
//        {
//            System.out.print(odd.charAt(i)+" ");
//        }
//        System.out.print('\n');
//    }

//    public static void main(String[] args) {
//        double ans=0;
//        for(int i=1;i<=100;i++)
//        {
//            if((i&1)==1) ans+=1.0/(i*1.0);
//            else ans-=1.0/(i*1.0);
//
//        }
//        System.out.println(ans);
//    }
//    public static int two_mx(int a,int b)
//    {
//        return a>b?a:b;
//    }
//    public static int tree_mx(int a,int b,int c)
//    {
//        int t1=two_mx(a,b);
//        int t2=two_mx(b,c);
//        return two_mx(t1,t2);
//    }
//
//    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int a=sc.nextInt();
//        int b=sc.nextInt();
//        int c=sc.nextInt();
//        int ans=tree_mx(a,b,c);
//        System.out.println(ans);
//    }
//        public static void main(String[] args) {
//            Scanner sc = new Scanner(System.in);
//            int n=sc.nextInt();
//            long ans=0;
//            long cur=1;
//            for(int i=1;i<=n;i++)
//            {
//                cur*=i;
//                ans+=cur;
//            }
//            System.out.println(ans);
//        }

        public static int sum(int a,int b) {return a+b;}
        public static double sum(double a,double b,double c) {return a+b+c;}


        public static int mx(int a,int b) {return a>b?a:b;}
        public static double mx(double a,double b,double c)
        {
            double ans=a>b?a:b;
            return ans>c?ans:c;
        }


        public static void main(String[] args) {
            int a=0;
            int b=1;
            int c=0;
            Scanner sc = new Scanner(System.in);
            int n=sc.nextInt();
            if(n==1) System.out.println(0);
            else if(n==2) System.out.println(1);
            else
            {
                for(int i=3;i<=n;i++)
                {
                    c=a+b;
                    a=b;
                    b=c;
                }
            }
            System.out.println(c);
        }
}



